# -*- coding:utf-8 -*-
from student import *


class StudentManger(object):
    def __init__(self):
        self.student_list = []

    def run(self):
        while True:
            # 打印学生管理系统界面
            self.show_menu()
            # 输入数字， 选择对应的功能
            menu_number = int(input("请输入数字选择对应的功能："))
            # 根据输入的数字实现相应的功能
            if menu_number == 1:
                self.add_student_data()
            elif menu_number == 2:
                self.del_student_data()
            elif menu_number == 3:
                self.upd_student_data()
            elif menu_number == 4:
                self.find_student_data()
            elif menu_number == 5:
                self.show_student_data()
            elif menu_number == 6:
                self.save_student_data()
            elif menu_number == 7:
                print("🪶🪶 欢迎下次使用，拜！🪶🪶 ")
                break
            else:
                print("请输入正确的数字✨✨✨✨")

    def show_menu(self):
        print("=======欢迎进入学生管理系统，请选择你要实现的功能=======")
        print("\t\t 🍁🍁🍁🍁🍁|1、增加学生信息|🍁🍁🍁🍁🍁")
        print("\t\t 🍁🍁🍁🍁🍁|2、删除学生信息|🍁🍁🍁🍁🍁")
        print("\t\t 🍁🍁🍁🍁🍁|3、修改学生信息|🍁🍁🍁🍁🍁")
        print("\t\t 🍁🍁🍁🍁🍁|4、查找学生信息|🍁🍁🍁🍁🍁")
        print("\t\t 🍁🍁🍁🍁🍁|5、显示学生信息|🍁🍁🍁🍁🍁")
        print("\t\t 🍁🍁🍁🍁🍁|6、保存学生信息|🍁🍁🍁🍁🍁")
        print("\t\t 🍁🍁🍁🍁🍁|7、退出当前系统|🍁🍁🍁🍁🍁")

    # 增加学员信息
    def add_student_data(self):
        while True:
            id = input("请输入学员id：")
            # 判断id是否重复
            for data in self.student_list:
                if data.id == id:
                    print("这个id以存在，请重新输入")
                    return self.add_student_data()
            name = input("请输入学员名字：")
            age = input("请输入学员年龄：")
            sex = input("请输入学员性别：")
            student_message = Student(id, name, age, sex)
            self.student_list.append(student_message)
            print(self.student_list)
            print(student_message)
            # 判断是否继续添加
            func = int(input("是否继续添加学员信息：(1 、继续添加 2、返回功能界面):"))
            if func == 2:
                break

    # 删除学员信息
    def del_student_data(self):
        student_name = input("请输入你要删除的学员姓名：")
        for data in self.student_list:
            if student_name == data.name:
                self.student_list.remove(data)
                print("删除成功")
                break
        else:
            print("当前学员不存在")

    # 修改学员信息
    def upd_student_data(self):
        student_id = input("请输入你要修改学员的id：")
        for data in self.student_list:
            if data.id == student_id:
                data.id = input("请输入新的id: ")
                data.name = input("请输入新的名字: ")
                data.age = input("请输入新的年龄: ")
                data.sex = input("请输入新的性别: ")
                print(f"{student_id}-成功修改为：{data.id}")
                break
        else:
            print("当前学员不存在")

    # 查找学员信息
    def find_student_data(self):
        student_name = input("请输入你要查看学员的名字：")
        for data in self.student_list:
            if data.name == student_name:
                print(f"这个学员的ID:{data.id}\t姓名：{data.name}\t年龄：{data.age}\t性别：{data.sex}")
                break
        else:
            print("当前学员不存在")

    # 显示学员信息
    def show_student_data(self):
        for data in self.student_list:
            print(f"ID:{data.id}\t姓名：{data.name}\t年龄：{data.age}\t性别：{data.sex}" + "\n")

    # 保存学员信息
    def save_student_data(self):
        for data in self.student_list:
            stu_data = f"ID:{data.id}\t姓名：{data.name}\t年龄：{data.age}\t性别：{data.sex}"
            with open("./学员信息.txt", "a", encoding="utf-8") as f:
                f.write(stu_data + "\n")
        print("学员信息保存成功")
